//package ai.people.platform.system.config;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.security.authentication.AuthenticationManager;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer;
//import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
//import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
//import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager;
//import org.springframework.security.oauth2.provider.token.RemoteTokenServices;
//import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices;
//import org.springframework.web.client.RestTemplate;
//
///**
// * 网络安全配置
// *
// * @author yuanqinglong
// * @date 2022/3/16 15:49
// */
//@Configuration
//@EnableResourceServer
//public class WebResourceConfig extends ResourceServerConfigurerAdapter {
//
//    @Autowired
//    private RestTemplate restTemplate;
//
//
//    @Autowired
//    private ResourceServerTokenServices resourceServerTokenServices;
//
//
//    @Override
//    public void configure(ResourceServerSecurityConfigurer resources) throws Exception {
//        resources.resourceId("c1") // 资源服务的id
//                .tokenServices(resourceServerTokenServices)
//                .stateless(true); // 无状态
//    }
//
//    @Override
//    public void configure(HttpSecurity http) throws Exception {
//
//        http     //表示不需要令牌也可以访问.
//                .authorizeRequests().anyRequest().permitAll()
//                //.and()
//                //表示资源服务器的该请求 需要令牌有读写权限
//                //.authorizeRequests().antMatchers("/**").access("#oauth2.hasScope('all')")
//                .and()
//                .csrf().disable();
//    }
//
//    //@Override
//    //public void configure(WebSecurity web) throws Exception {
//    //    web.ignoring().antMatchers("/user/*");
//    //}
//
//    //@Override
//    //protected void configure(HttpSecurity http) throws Exception {
//    //    ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry config
//    //            = http.requestMatchers().anyRequest()
//    //            .and()
//    //            .formLogin()
//    //            .and()
//    //            .authorizeRequests();
//    //    config.antMatchers("/user/*").permitAll();
//    //    config.antMatchers("/menu/*").permitAll();
//    //    config.antMatchers("/role/*").permitAll();
//    //
//    //    config
//    //            //任何请求
//    //            .anyRequest()
//    //            //都需要身份认证
//    //            .authenticated()
//    //            //csrf跨站请求
//    //            .and()
//    //            .csrf().disable();
//    //}
//
//    @Bean
//    public ResourceServerTokenServices resourceServerTokenServices() {
//        RemoteTokenServices remoteTokenServices = new RemoteTokenServices();
//        remoteTokenServices.setClientId("netDataService");
//        remoteTokenServices.setClientSecret("catnetmon@)@!!@!$");
//        remoteTokenServices.setCheckTokenEndpointUrl("http://NM-SERVICE-UCENTER-AUTH/auth/oauth/check_token");
//        remoteTokenServices.setRestTemplate(restTemplate);
//        return remoteTokenServices;
//    }
//
//    @Bean
//    public AuthenticationManager authenticationManagerBean() {
//        OAuth2AuthenticationManager manager = new OAuth2AuthenticationManager();
//        manager.setTokenServices(resourceServerTokenServices());
//        return manager;
//    }
//
//}
